java try finally 阻止关闭流
全部标签 我正在编写一个GUI应用程序。应用程序在其生命周期内打开了多个线程。其中一个线程正在处理可能来自其他应用程序的事件,因此它在while(true)循环中等待永远不会终止的事件。用户可以随时关闭应用程序。我想关闭主应用程序打开的所有线程。我正在使用Process.GetCurrentProcess().Kill();暂时解决这个问题。这是一个好的解决方案吗?如果不是,为什么以及处理这个问题的正确方法是什么,如何关闭主应用程序打开的所有线程? 最佳答案 如果您将新线程创建为后台线程(通过在启动它们之前设置IsBackground),它们
我正在制作一个WPF应用程序,我想发布该应用程序的测试版,为此我添加了一个名为“debug”的Button,这基本上显示/隐藏控制台窗口。每次事件发生后,我都会在控制台上写下适当的消息,这样可以帮助用户通过查看控制台上的消息来报告他们遇到的问题。对于背景故事(如果没有帮助),我们深表歉意。我基本上需要知道如何在c#中动态显示/隐藏控制台窗口。 最佳答案 你认为现在我理解这个问题了吗?[DllImport("Kernel32")]publicstaticexternvoidAllocConsole();[DllImport("Kern
与数据库连接对象一起使用时,using语句是否真的调用了close方法?TheMSDNdocumentation说它确保调用Dispose方法但没有提到关闭。我在StackOverflow上看到有人说它可以同时做到这两点。是否有人从Microsoft或其他确凿的证据中以某种方式给出了具体的答案? 最佳答案 这是SqlConnection类的“Dispose”方法:protectedoverridevoidDispose(booldisposing){if(disposing){this._userConnectionOptions=
我有以下代码:Taskload=Task.Factory.StartNew(()=>{//SomeStuffWhichThrowsanException});try{load.Wait();}catch(AggregateExceptionex){MessageBox.Show("Error!");}每当任务中抛出异常时,我希望它冒泡并被trycatch捕获,而不是VisualStudio在异常发生时中断。我试过谷歌,有人建议我在我的方法之上添加这个[DebuggerHidden],但它不起作用。 最佳答案 好的,我知道怎么做了。答
我正在使用.NET3.5并在CommunityServer2008框架内构建页面。在其中一个页面上,我试图让UpdatePanel正常工作。我直接从ASP.NET网站获取样本,通过单击按钮将UpdatePanel中的时间更新为当前时间,但是由于某种原因,当我尝试执行整个页面刷新的功能时.这是我的:protectedvoidButton1_Click(objectsender,EventArgse){Label1.Text="Panelrefreshedat"+DateTime.Now.ToString();Label2.Text="Panelrefreshedat"+DateTime.
是否可以在选择/检查某些项目后让ContextMenuStrip保持打开状态?我计划使用一个简单的ContextMenuStrip来设置过滤器(这样我就可以在菜单中或作为右键单击选项使用相同的过滤器)。菜单列出了一些项目,我希望用户能够使用基本的检查功能来选择项目。选择完成后,用户可以单击“激活过滤器”选项,也可以在菜单外单击以激活或取消过滤器。在选择/单击事件中,菜单通常会关闭。是否可以在单击事件时保持菜单打开? 最佳答案 如果future的程序员想知道如何做到这一点,这就是我想出来的。如果单击任何项目,这不会关闭上下文菜单。
阅读微软文档http://msdn.microsoft.com/en-us/library/bb738684.aspx我看到他们明确地打开和关闭连接using(EntityConnectionconn=newEntityConnection("name=AdventureWorksEntities")){conn.Open();...conn.Close();}为什么这是必要的? 最佳答案 这不是使用EF的“正常”方式。EF通常会为您管理连接。然而:ManagingConnectionsinObjectServices(Entity
众所周知,在C#中接受传入TCP连接的最简单方法是循环TcpListener.AcceptTcpClient()。此外,这种方式将阻止代码执行,直到获得连接。这对GUI有极大的限制,所以我想在单独的线程或任务中监听连接。有人告诉我,线程有几个缺点,但是没有人向我解释这些是什么。所以我没有使用线程,而是使用了任务。这很好用,但是由于AcceptTcpClient方法正在阻止执行,我找不到任何方法来处理任务取消。目前代码看起来像这样,但我不知道当我希望程序停止监听连接时我将如何取消任务。首先关闭任务中执行的函数:staticvoidListen(){//Createlistenerobje
我在winform上有一个退出按钮,我想用它来关闭程序。我已将按钮名称添加到Winforms属性的事件部分中的FormClosed属性。我以为这就是我所要做的,但是当我点击按钮时它并没有关闭。我查看了代码,在创建处理程序时,其中没有代码。我不知道这是否正确。这是在Form.cs文件中创建的代码:privatevoidbtnExitProgram_Click(objectsender,EventArgse){}我还需要做什么? 最佳答案 this.Close();以编程方式关闭表单。 关于
我正在使用C#开发适用于Windows8的应用程序,一件非常烦人的事情是触摸键盘有时会停留在屏幕上,即使所有文本框都已失去焦点。我读了文章keyboarddismissallogicwhitepaper,这解释了当从一个控件切换到另一个控件时,即使控件可能不接受键盘输入,键盘也可以保持打开状态。这就是我的情况,因为我的所有内容都托管在GridView或ListView中。当用户点击屏幕上的任何项目时,点击将落在这些控件上。这很烦人,因为键盘占据了半个屏幕,而且无法关闭键盘。我试过将文本框设置为禁用,但没有效果。移除键盘的唯一方法是将焦点设置在按钮上,这非常hacky。我想我需要用“Au